転送とバッファリング
[flow_graph.forwarding_and_buffering]
転送
flow::graph
でサクセサーにメッセージを転送するノードには、プロパティーに次の 2 つの転送ポリシーがあります:
broadcast-push - メッセージは受け入れるすべてのサクセサーにプッシュされます。メッセージを受け付けるサクセサーがない場合、メッセージはノードのバッファーポリシーに応じて処理されます。
single-push - 1 つのサクセサーがメッセージを受け付けると、そのメッセージはそれ以上プッシュされません。サクセサーがメッセージの受信を拒否した場合、セット内の次のサクセサーが試されます。この処理はサクセサーがメッセージを受け取るまで、またはすべてのサクセサーが試されるまで続行されます。メッセージを受け付けるサクセサーがない場合、メッセージは将来再送信するため保持されます。サクセサーに転送されはメッセージはノードから削除されます。
バッファリング
サクセサーにプッシュできないメッセージを処理するには 2 つのポリシーあります。
buffering - メッセージを受け付けるサクセサーがない場合、後続のノードがメッセージを処理が使用できるよう保存されます。出力をバッファリングするノードには、「try_get()?」 カラムに 「はい」 が示されています。
discarding - メッセージを受け付けるサクセサーがない場合、メッセージは破棄され、グラフの実行には影響しません。出力を破棄するノードには、「try_get()?」カラムに「いいえ」が示されます。
以下の表は各ノードのポリシーの一覧です:
ノード |
try_get()? |
転送 |
---|---|---|
機能ノード |
||
|
はい |
broadcast-push |
|
いいえ |
broadcast-push |
|
いいえ |
broadcast-push |
|
いいえ |
broadcast-push |
|
いいえ |
broadcast-push |
|
いいえ |
broadcast-push |
バッファリング・ノード |
||
|
はい |
single-push |
|
はい |
single-push |
|
はい |
single-push |
|
はい |
single-push |
|
はい |
broadcast-push |
|
はい |
broadcast-push |
分割/ジョインノード |
||
|
はい |
broadcast-push |
|
はい |
broadcast-push |
|
はい |
broadcast-push |
|
いいえ |
broadcast-push |
|
いいえ |
broadcast-push |
その他のノード |
||
|
いいえ |
broadcast-push |
|
いいえ |
broadcast-push |